Java Generics - 类本身的子类?
全部标签 Java-是否可以用一个类扩展一个类的所有子类?举个例子来说明吧,实际代码要复杂的多。我有一个Animal类,它有自己的类层次结构。假设它有两个子类:Testarrosa和Viper。publicclassCar{publicabstractStringgetManufacturer();}publicclassTestarossaextendsCar{publicStringgetManufacturer(){return"Ferrari";}}publicclassViperextendsCar{publicStringgetManufacturer(){return"Dodge"
我想为我的枚举Color覆盖toString()。但是,我无法弄清楚如何在Color枚举中获取Color实例的值。有没有办法在Java中执行此操作?例子:publicenumColor{RED,GREEN,BLUE,...publicStringtoString(){//return"R"forRED,"G",forGREEN,etc.}} 最佳答案 也可以开启this的类型,例如:publicenumFoo{A,B,C,D;@OverridepublicStringtoString(){switch(this){caseA:ret
我有一个ScheduleContainer对象列表,流中的每个元素都应转换为ScheduleIntervalContainer类型。有没有办法做到这一点?finalListscheduleIntervalContainersReducedOfSameTimesfinalList>scheduleIntervalContainerOfCurrentDay=newArrayList(scheduleIntervalContainersReducedOfSameTimes.stream().sorted(Comparator.comparing(ScheduleIntervalContain
这个问题在这里已经有了答案:Whydoinnerclassesmakeprivatemethodsaccessible?(4个答案)关闭6年前。为什么下面代码中子类Child中可以看到父类Base的私有(private)方法?publicclassTrial{classBase{privatevoidfoo(){}}classChildextendsBase{privatevoidfunc(){super.foo();}}}如果Base和Child类不是内部类,那将是不可能的。为什么内部类会有这种行为?
考虑我们有一个预定的执行程序服务:ScheduledExecutorServicethreadPool=Executors.newScheduledThreadPool(...);对于某些逻辑,我们希望重试任务执行。以下方法对我来说似乎很奇怪,但我不明白为什么:threadPool.submit(newRunnable(){@Overridepublicvoidrun(){//...if(needToBeScheduled()){threadPool.schedule(this,delay,TimeUnit.MINUTES);}elseif(needToBeResubmitted())
假设我有一个名为User的类和一个ExtendedUser类,后者是User的子类。这两个类都使用hibernate(JPA)注释进行映射:用户:@Entity@Table("user-table")@Inheritance(strategy=InheritanceType.JOINED)publicclassUser{@Id@GeneratedValue@Column(name="id")privateIntegerid;@Column(name="name")privateStringname;}扩展用户:@Entity@Table(name="extended-user-tabl
我正在开发优惠券和交易平台的以下类层次结构::Promotion-abstract-Coupon-Sale-Deal(Coupon、Sale和Deal继承自Promotion。Promotion有一个名为type的字符串属性和一个将子类的类型属性初始化为字符串值的抽象方法。例如优惠券中的type获取值"Coupon"等...)对于每个子类,我都有一个DAO和Service类,例如CouponDAO、CouponService等在前端,用户可以通过Angular2界面创建Coupon或Sale或Deal,这样我决定拥有以下Controller:PromotionController-ab
问题我正在尝试创建一个应用程序,其中的对象类可以实现一些来自可用操作总池的操作。最终目标是没有任何代码重复,并尽可能遵守OOP法则。更详细地说,我正在尝试使用Lucene制作一个搜索引擎。卢森使用许多索引。我已经实现了一个简单的结构,其中不同的索引对象继承父类的方法。问题是,无论在该父类中实现什么方法,它都会自动可供所有子类使用。我想为用户提供选项,以确定他是否想进行短语搜索、术语搜索或任何其他可用于that特定索引的内容。问题是,例如,某些索引不应提供进行短语搜索的选项。最初的想法我想过实现一些接近复合模式的东西,正如GoF所描述的那样。我会将搜索操作(例如术语搜索、短语搜索)实现为
我正在尝试将实体扩展为用于填充父类(superclass)字段的非实体。问题是,当我尝试保存它时,Hibernate会抛出MappingException。这是因为即使我将ReportParser转换为Report,运行时实例仍然是ReportParser,因此Hibernate会提示它是一个未知实体。@Entity@Table(name="TB_Reports")publicclassReport{Longid;Stringname;Stringvalue;@Id@GeneratedValue@Column(name="cReportID")publicLonggetId(){ret
请考虑以下示例:publicfinalclassImmutableWrapper{privatefinalTvalue;publicImmutableWrapper(Tvalue){//asubclassofNumbermaybemutable//so,howtodefensivelycopyingthevalue?this.value=value;}publicTgetValue(){//thesamehere:howtoreturnacopy?returnvalue;}}为了使此类不可变,我必须防御性地复制传递给构造函数的任何可变参数,并创建公共(public)方法返回的内部可变对